import json
import re

# 定义汇率（以人民币为基准，2025年6月假设汇率）
EXCHANGE_RATES = {
    '人民币': 1.0,    # 人民币（默认）
    '万美元': 7,   # 美元
    '万港元': 0.9,  # 港元
    '万欧元': 8,   # 欧元
    '万日元': 0.048  # 日元
}

def convert_currency(value_str):
    """
    转换注册资本字符串为人民币万元数值
    
    参数:
    value_str (str): 注册资本字符串，如 "100万元"、"50万美元"
    
    返回:
    float: 转换后的人民币万元数值
    """
    # 提取数值和单位
    match = re.match(r'(\d+\.?\d*)\s*([\u4e00-\u9fa5$€￥]+)', value_str)
    if not match:
        print(f"警告: 无法解析注册资本格式: {value_str}，将使用原始数值")
        # 尝试直接提取数字
        num_match = re.search(r'(\d+\.?\d*)', value_str)
        return float(num_match.group(1)) if num_match else 0.0
    
    amount, unit = match.groups()
    
    # 处理单位映射
    if '美元' in unit:
        unit_key = '万美元'
    elif '港元' in unit:
        unit_key = '万港元'
    elif '欧元' in unit:
        unit_key = '万欧元'
    elif '日元' in unit:
        unit_key = '万日元'
    else:
        unit_key = '人民币'  # 默认人民币
    
    # 转换为人民币
    if unit_key in EXCHANGE_RATES:
        return float(amount) * EXCHANGE_RATES[unit_key]
    else:
        print(f"警告: 未知货币单位: {unit}，将使用原始数值")
        return float(amount)

def process_json_file(input_file, output_file):
    """
    处理JSON文件，将所有企业的注册资本转换为人民币万元数值
    
    参数:
    input_file (str): 输入JSON文件路径
    output_file (str): 输出JSON文件路径
    """
    try:
        # 读取JSON文件
        with open(input_file, 'r', encoding='utf-8') as f:
            data = json.load(f)
        
        # 适配不同的JSON结构
        if isinstance(data, dict):
            for sheet_name, companies in data.items():
                for company in companies:
                    if 'registeredCapital' in company:
                        original_value = company['registeredCapital']
                        converted_value = convert_currency(original_value)
                        company['registeredCapital'] = converted_value
        elif isinstance(data, list):
            for company in data:
                if 'registeredCapital' in company:
                    original_value = company['registeredCapital']
                    converted_value = convert_currency(original_value)
                    company['registeredCapital'] = converted_value
        else:
            print("未知的JSON结构")
            return
        
        # 保存处理后的JSON文件
        with open(output_file, 'w', encoding='utf-8') as f:
            json.dump(data, f, ensure_ascii=False, indent=2)
        
        print(f"处理完成，已保存到 {output_file}")
        
    except Exception as e:
        print(f"处理文件时出错: {e}")

if __name__ == "__main__":
    # 设置输入和输出文件路径
    input_file = 'enterprise.json'
    output_file = '转换_enterprise.json' 
    
    # 执行转换
    process_json_file(input_file, output_file)    